###############################################################################
# Globals #####################################################################
###############################################################################

__version__ = '0.0.2'
__date__ = 'Date: 2011/01/11'
__author__ = 'Bart Robinson <bartrobinson76@yahoo.com>'
__doc__ = '''
Two dimensional point class.

Usage: point2d(list) returns point2d object

Example:  p = point2d([1.0, 2.0])

'''
__all__ = ['point2d']

###############################################################################
# Imports #####################################################################
###############################################################################

from pycgx.math.vectors.vector2 import vector2

###############################################################################
# Classes and Methods #########################################################
###############################################################################

class point2d(vector2):
	"""
	point2d()
	point2d([number, number])
	"""
	
	def __init__(self, vector = None):
		vector2.__init__(self, vector)
	
	def __getattr__(self, name):
		if name == "x":
			return self.data[0]
		elif name == "y":
			return self.data[1]
		elif name == "z":
			return 0.0
		else:
			raise
	
	def __setattr__(self, name, value):
		if name == "x":
			self.data[0] = value
		elif name == "y":
			self.data[1] = value
		elif name == "z":
			pass
		else:
			raise
			
	def x(self, value = None):
		if value != None:
			self.data[0] = value
		else:
			return self.data[0]
	
	def y(self, value = None):
		if value != None:
			self.data[1] = value
		else:
			return self.data[1]